package com.qingzhuge.resource.service;


import com.qingzhuge.common.enums.EResourceType;
import com.qingzhuge.resource.entity.SysResource;
import com.qingzhuge.resource.vo.TreeVo;
import com.qingzhuge.service.IBasePkLongService;

import java.util.List;


/**
 * @author : zero.xiao
 * @description : 菜单管理
 * @date :2018/6/8 0008 下午 15:05
 * @modified :
 * @since : 1.0.0
 */
public interface ISysResourceService extends IBasePkLongService<SysResource> {

    /**
     * 根据父菜单，查询子菜单
     *
     * @param parent   父菜单ID
     * @param resourceIdList 用户菜单ID
     */
    List<SysResource> queryListByParent(SysResource parent, List<Long> resourceIdList);

    /**
     * 根据父菜单，查询子菜单
     *
     * @param parent 父菜单ID
     */
    List<SysResource> queryListByParent(SysResource parent);

    /**
     * 查询菜单 转为tree，前端展示用
     * @param parent 菜单 id
     * @return List<Tree>
     */
    List<TreeVo> queryTreeListByParent(SysResource parent);

    /**
     * 获取不包含按钮的菜单列表
     */
    List<SysResource> queryNotButtonList();

    /**
     * 获取所有菜单列表
     */
    List<SysResource> queryAllResourceList(List<Long> resourceIdList);

    List<String> queryPermissionByUserId(Long uid);

    List<String> queryPermissionByRoleId(Long roleId);

    SysResource findByUrlAndRequestMethod(String url,String requestMethod);
    SysResource findByNameAndType(String name, EResourceType type);
}
